The invention generally relates to computer systems and in particular to an I/O bus that can be plugged into or unplugged from a computer system without powering down the computer system.
As a particular computer's usage and applications expand, it may be desirable to expand the I/O capabilities of that computer. However, most computer systems are not designed to be significantly upgraded due to inherent architectural limitations. Rather, most current computer systems are fixed capacity systems and cannot be easily expanded or upgraded. A computer system typically includes a memory controller and an I/O controller. For current systems, the memory controller typically interfaces a fixed amount of memory to the host bus, and the I/O controller typically interfaces a fixed number of I/O buses to the host bus. For example, A PCI-to-host bridge may interface a Peripheral Component Interconnect (PCI) bus to the host bus. Typically one bridge is required for each PCI bus. A PCI bus is a high performance, high bandwidth bus configured in accordance with protocols established by the PCI Special Interest Group. The PCI-to-host bridge is provided, in part, to facilitate conversion of data from the PCI format to a format employed by the host bus. The only technique available to increase memory and I/O capabilities is to add additional controllers or components to the host bus. However, many state of the art host buses are highly sensitive to the number of components, such as bridges, connected to the host bus. With such buses the maximum permissible clock rate is often inversely proportional to the number of components connected to the host bus due to the electrical load supplied by each component. Accordingly, the connection of additional bridges or component directly to the host bus results in a lowering of the maximum permissible clock rate, thereby lowering the overall performance of the system. As a result, the connection of an additional PCI bridge may lower the maximum permissible bus rate to a level which significantly hinders the performance of the overall computer system. Thus, a user is typically forced to purchase a new computer system to obtain significant additional I/O and memory capabilities. Therefore, there is a need for a computer system that is more flexible and which can be expanded more easily to meet the growing I/O needs without significantly degrading system performance.
In addition, many existing computer systems include input/output (I/O) devices, such as PCI compatible devices or PCI expansion cards which can be connected to one of several PCI expansion slots. In computer systems utilizing a PCI bus, PCI expansion cards can be unplugged from and plugged into PCI expansion slots while the computer system is powered and running (so-called "hot plug"). The ability to hot plug PCI cards and adapters is desirable because PCI expansion cards can be replaced without having to power down the computer system. Maintenance can be performed on a server in a network without powering down the computer system thereby allowing use of the computer system during the maintenance period.
However, hot plug PCI has limitations and disadvantages. Hot plug PCI requires that each PCI expansion slot be electrically isolated from the other expansion slots on the PCI bus to prevent interruption to other components and applications using those components during hot plug replacement. This requires significant protective hardware and software to provide the isolation between each of the PCI expansion slots.
Moreover, hot plug PCI only allows for slot-level replacement of individual PCI cards or adapters. Hot plug PCI does not allow for hot plug replacement of an entire I/O bus. As a result, the computer system or server must be taken off-line, powered down, and the cover must be removed to access and replace a defective PCI bus.
Also, as described above, I/O capabilities cannot be upgraded in current computers because the number and type of I/O buses is usually fixed. I/O capabilities of current computers cannot be significantly upgraded, much less upgraded without having to power down the computer. Therefore, in order to upgrade or improve I/O capabilities requires a computer system to be powered down and then replaced with a computer having improved I/O features (e.g., additional I/O buses). This typically results in significant computer down time and increased expense due to the cost of the replacement computer system. Therefore, a need exists for a computer system that allows complete I/O buses to be replaced or added to the computer system without powering down the computer system.